package com.veterinaria.dao;

import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;


import com.veterinaria.bean.UsuarioBean;
import com.veterinaria.services.UsuarioService;

public class UsuarioDAO implements UsuarioService{

	SqlSessionFactory sqlmapper= null;{
	   	 try {
				
			
	   	 Reader reader = Resources.getResourceAsReader("ConfiguracionIbatis.xml");
	   	 
	   	 sqlmapper =new  SqlSessionFactoryBuilder().build(reader);
	   	 } catch (Exception e) {
					e.printStackTrace();
				}
	    }

	@Override
	public UsuarioBean obtenerUsuarioLogin(UsuarioBean usu) throws Exception {
		UsuarioBean bean=null;
		 SqlSession session = sqlmapper.openSession();			
			try {				
				bean= (UsuarioBean) session.selectOne("usuarioxml.buscarUsuario",usu);				
			} catch (Exception e) {
				e.printStackTrace();
			}finally{ session.close();}
		return bean;

	}

	@Override
	public void registrarUsuario(UsuarioBean usu) throws Exception {
		SqlSession session = sqlmapper.openSession();
		String msg="";
		try {
			msg="exito"+ session.insert("usuarioxml.registrarUsuario",usu);
			session.commit();
		} catch (Exception e) {
			e.printStackTrace();
			msg=e.getMessage();
			session.rollback();
		}finally{ session.close();}
		
	}

	@Override
	public void eliminarUsuario(UsuarioBean usu) throws Exception {
		SqlSession session = sqlmapper.openSession();
		String msg="";
		try {
			msg="exito"+ session.insert("usuarioxml.eliminarUsuario",usu);
			session.commit();
		} catch (Exception e) {
			msg=e.getMessage();
			session.rollback();
		}finally{ session.close();}
		
	}

	@Override
	public void actualizarUsuario(UsuarioBean usu) throws Exception {

		SqlSession session = sqlmapper.openSession();
		String msg="";
		try {
			System.out.println("PASS dao::"+usu.getPassword());
			msg="exito"+ session.insert("usuarioxml.actualizarUsuario",usu);
			session.commit();
		} catch (Exception e) {
			e.printStackTrace();
			msg=e.getMessage();
			session.rollback();
		}finally{ session.close();}
	}

	@Override
	public UsuarioBean obtenerUsuarioCompleto(UsuarioBean usu) throws Exception {
		System.out.println("USUARIO DAO::"+usu.getUsuario());
		UsuarioBean bean=null;
		 SqlSession session = sqlmapper.openSession();			
			try {				
				bean= (UsuarioBean) session.selectOne("usuarioxml.buscarUsuarioCompleto",usu);
				System.out.println("PASS DAO::"+bean.getPassword());
			} catch (Exception e) {
				e.printStackTrace();
			}finally{ session.close();}
		return bean;
	}

}
